package com.ctsi.ssdc.service;

import com.ctsi.ssdc.entity.Excel08;
import com.ctsi.ssdc.entity.Excel08VO.Excel08VO;
import com.ctsi.ssdc.entity.Excel08VO.MonthProductVo;
import com.ctsi.ssdc.entity.IndustrialEconomicIndicators;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;

import java.util.Date;
import java.util.List;
/**
 * 8基础表工业分行业(产值能耗)(Excel08)表服务接口
 *
 * @author makejava
 * @since 2023-03-15 15:03:30
 */
public interface Excel08Service {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Excel08 queryById(Long id);

    /**
     * 分页查询
     *
     * @param excel08 筛选条件
     * @param pageRequest      分页对象
     * @return 查询结果
     */
    Page<Excel08> queryByPage(Excel08 excel08, PageRequest pageRequest);

    /**
     * 新增数据
     *
     * @param excel08 实例对象
     * @return 实例对象
     */
    Excel08 insert(Excel08 excel08);

    /**
     * 修改数据
     *
     * @param excel08 实例对象
     * @return 实例对象
     */
    Excel08 update(Excel08 excel08);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

     /**
     *  批量添加数据
     * @param list
     * @return 是否成功
     */
    boolean insertBatch(List<Excel08> list);

    List<Excel08VO> getInfo(String year, String month, Integer group);

    List<Excel08VO> getInfoType(String year, String month);

    List<MonthProductVo> getInfoYear(String year, String name, Integer apiType);

    List<Excel08VO> getKeyInfo(String year, String month);

    /**
     * 获取规上工业总产值当月 + 累计 + 同比
     * @param year
     * @param month
     * @return
     */
    IndustrialEconomicIndicators getIndustryOutputInfo(String year, String month);

    /**
     * 获取综合能源消费量（吨标准煤）当月 + 累计 + 同比
     * @param year
     * @param month
     * @return
     */
    IndustrialEconomicIndicators getEnergyConsumptionInfo(String year, String month);

    /**
     * 获取规上工业用电量（万千瓦时）当月 + 累计 + 同比
     * @param year
     * @param month
     * @return
     */
    IndustrialEconomicIndicators getIndustrialElectricityInfo(String year, String month);

    /**
     * 获取万元产值能耗（吨标准煤/万元）当月 + 累计 + 同比
     * @param year
     * @param month
     * @return
     */
    IndustrialEconomicIndicators getEnergyConsumption1wInfo(String year, String month);

    /**
     * 获取高新技术产业产值当月 + 累计 + 同比
     * @param year
     * @param month
     * @return
     */
    IndustrialEconomicIndicators getHighTechInfo(String year, String month);

    IndustrialEconomicIndicators getHighTechProportionInfo(String year, String month);


    /**
     * 根据日期删除
     * @param date
     * @return 是否成功
     */
    boolean removeByDate(Date date);
}
